/*
 *    Copyright (c) 2018-2025, boss All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the boss developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: boss
 */

package com.hopes.bizz.emergency.command.vo;


import com.hopes.bizz.emergency.command.entity.ErAccidentEntity;
import com.hopes.bizz.emergency.command.entity.ErAssessDetailEntity;
import com.hopes.bizz.emergency.common.constant.enums.ParkEmergencySysDictEnum;
import com.hopes.boss.admin.api.resolver.DictResolver;
import com.hopes.boss.admin.api.resolver.enums.AdminDictEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 应急处置报告VO
 *
 * @author cx
 * @date 2024-01-19 13:18:22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ErEmergencyHandleWordVO extends ErAccidentEntity {

    private static final long serialVersionUID = 1L;

	/**
	 * 事故单位名称
	 */

	private String orgIdStr;

	/**
	 * 事故单位地址
	 */

	private String companyAddress;


	/**
	* 事故名称
	*/

    private String accidentName;

	/**
	 * 事故类型翻译
	 */

	private String accidentTypeDic;

	/**
	 * 事故发生时间
	 */

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date accidentOccurrenceTime;

	/**
	 * 事故确认时间
	 */

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date accidentConfirmTime;

	/**
	 * 报警人
	 */

	private String alarmPeople;


	/**
	* 报警时间
	*/

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;

	/**
	 * 报警人电话
	 */

	private String alarmPeoplePhone;

	/**
	 * 事故来源
	 */

	private String accidentOrigin;


	/**
	 * 救援开始时间
	 */

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date rescueStartTime;

	/**
	 * 直接经济损失(万元)
	 */

	private BigDecimal directLoss;



	/**
	* 轻伤人员
	*/

    private Integer minorWoundNum;

	/**
	 * 重伤人员
	 */

	private Integer severeWoundNum;

	/**
	 * 被困人员
	 */

	private Integer treppedNum;

	/**
	 * 失踪人员
	 */

	private Integer missingNum;


	/**
	* 死亡人员
	*/

    private Integer dieNum;


	/**
	 * 接警人
	 */

	private String receiveAlarmPeople;

	/**
	 * 事故概况
	 */

	private String accidentDesc;

	/**
	 * 事故处理意见
	 */

	private String accidentHandleOpinion;


	/**
	 * 是否启动预案
	 */

	private String isStartPlan;

	/**
	 * 预案名称
	 */

	private String planIdDic;

	/**
	 * 预案事故类型
	 */

	private String planAccidentType;

	/**
	 * 事故等级
	 */

	private Integer accidentLevel;


	/**
	 * 响应级别
	 */

	private Integer responseLevel;




	/**
	 * 疏散半径(m)
	 */

	private Integer evacuationRadius;


	/**
	* 启动人
	*/

    private String startPeople;

	/**
	* 启动时间
	*/

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;


	/**
	* 进展情况
	*/

    private String progressDesc;


	/**
	* 应急启动经过描述
	*/

    private String startProcessDesc;

	/**
	 * 总指挥
	 */

	private String commander;

	/**
	 * 结案时间
	 */

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date closeTime;

	/**
	 * 结案说明
	 */

	private String closeDesc;


	/**
	 * 事件评估
	 */

	private List<ErAssessDetailEntity> eventAssess;

	/**
	 * 能力评估
	 */

	private List<ErAssessDetailEntity> abilityAssess;

	/**
	 * 综合评估
	 */

	private List<ErAssessDetailEntity> comprehensiveAssess;


	public String getAccidentTypeStr(){
		return DictResolver.getItemLabelByValue(ParkEmergencySysDictEnum.emergency_accident_type, this.getAccidentType());
	}
	public String getAccidentStatusStr(){
		return DictResolver.getItemLabelByValue(ParkEmergencySysDictEnum.emergency_accident_status, this.getAccidentStatus());
	}


	public String getOrgIdStr() {
		return DictResolver.getItemLabelByValue(AdminDictEnum.sys_company,this.getOrgId());
	}




}